2a973a42a5804b3e39113b7b7681e2251ddbc4c4,xstream/src/java/com/thoughtworks/xstream/mapper/OuterClassMapper.java,OuterClassMapper,realMember,#Class#String#,42

Before Change



    @Override
    public String realMember(final Class<?> type, final String serialized) {
        if (serialized.equals(alias)) {
            return "this$0";
        } else {
            return super.realMember(type, serialized);

After Change



    @Override
    public String realMember(final Class<?> type, final String serialized) {
        if (serialized.startsWith(alias)) {
            int idx = -1;
            final int len = alias.length();
            if (len == serialized.length()) {
                idx = 0;
            } else if (serialized.length() > len + 1 && serialized.charAt(len) == '-') {
                idx = Integer.valueOf(serialized.substring(len + 1));
            }
            if (idx >= 0) {
                final String[] innerFieldNames = getInnerFieldNames(type);
                if (idx < innerFieldNames.length) {
                    return innerFieldNames[idx];
                }
            }
        }